package com.yunpeng.aidevice.dao.mapper;

import com.yunpeng.common.paging.PagingQueryDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * IListMapper
 *
 * @author hemw.it
 * @date 2019/9/25 10:23
 */
@Mapper
public interface IListMapper {

    /**
     * 查询权限服务端列表数据
     *
     * @param pagingQueryDO
     * @return
     */
    List<Map<String, Object>> queryPermissionList4ServiceSide(@Param("pagingQueryDO") PagingQueryDO pagingQueryDO);

    /**
     * 统计权限服务端数据数量
     *
     * @param pagingQueryDO
     * @return
     */
    Integer countPermissionList4ServiceSide(@Param("pagingQueryDO") PagingQueryDO pagingQueryDO);

    /**
     * 查询角色服务端列表数据
     *
     * @param pagingQueryDO
     * @return
     */
    List<Map<String, Object>> queryRoleList4ServiceSide(@Param("pagingQueryDO") PagingQueryDO pagingQueryDO);

    /**
     * 统计角色服务端数据数量
     *
     * @param pagingQueryDO
     * @return
     */
    Integer countRoleList4ServiceSide(@Param("pagingQueryDO") PagingQueryDO pagingQueryDO);


    /**
     * 查询组织机构权限服务端列表数据
     *
     * @param pagingQueryDO
     * @return
     */
    List<Map<String, Object>> queryOrgPermissionList4ServiceSide(@Param("pagingQueryDO") PagingQueryDO pagingQueryDO);

    /**
     * 统计组织机构权限服务端数据数量
     *
     * @param pagingQueryDO
     * @return
     */
    Integer countOrgPermissionList4ServiceSide(@Param("pagingQueryDO") PagingQueryDO pagingQueryDO);


    /**
     * 查询字典服务端列表数据
     *
     * @param pagingQueryDO
     * @return
     */
    List<Map<String, Object>> queryDictionariesList4ServiceSide(@Param("pagingQueryDO") PagingQueryDO pagingQueryDO);

    /**
     * 统计字典服务端数据数量
     *
     * @param pagingQueryDO
     * @return
     */
    Integer countDictionariesList4ServiceSide(@Param("pagingQueryDO") PagingQueryDO pagingQueryDO);


    /**
     * 查询用户 商户端列表数据
     *
     * @param pagingQueryDO
     * @return
     */
    List<Map<String, Object>> queryUserList4Merchant(@Param("pagingQueryDO") PagingQueryDO pagingQueryDO);

    /**
     * 统计用户 商户端列表数据
     *
     * @param pagingQueryDO
     * @return
     */
    Integer countUserList4Merchant(@Param("pagingQueryDO") PagingQueryDO pagingQueryDO);

    /**
     * 查询设备 商户端列表数据
     *
     * @param pagingQueryDO
     * @return
     */
    List<Map<String, Object>> queryDeviceList4Merchant(@Param("pagingQueryDO") PagingQueryDO pagingQueryDO);

    /**
     * 统计设备 商户端列表数据
     *
     * @param pagingQueryDO
     * @return
     */
    Integer countDeviceList4Merchant(@Param("pagingQueryDO") PagingQueryDO pagingQueryDO);

    /**
     * 查询设备 单日详情数据
     *
     * @param pagingQueryDO
     * @return
     */
    List<Map<String, Object>> queryDeviceDayDetailRecord(@Param("pagingQueryDO") PagingQueryDO pagingQueryDO);

    /**
     * 统计设备 单日详情数据
     *
     * @param pagingQueryDO
     * @return
     */
    Integer countDeviceDayDetailRecord(@Param("pagingQueryDO") PagingQueryDO pagingQueryDO);


    /**
     * 查询设备 单日详情数据
     *
     * @param pagingQueryDO
     * @param state
     * @return
     */
    List<Map<String, Object>> queryDeviceDayCount(@Param("pagingQueryDO") PagingQueryDO pagingQueryDO, @Param("state") String state);

    /**
     * 统计设备 单日详情数据
     *
     * @param pagingQueryDO
     * @param state
     * @return
     */
    Integer countDeviceDayCount(@Param("pagingQueryDO") PagingQueryDO pagingQueryDO, @Param("state") String state);


    /**
     * 查询组织设备 单日详情数据
     *
     * @param pagingQueryDO
     * @param state
     * @return
     */
    List<Map<String, Object>> queryOrgDeviceDayCount(@Param("pagingQueryDO") PagingQueryDO pagingQueryDO, @Param("state") String state);

    /**
     * 统计组织设备 单日详情数据
     *
     * @param pagingQueryDO
     * @param state
     * @return
     */
    Integer countOrgDeviceDayCount(@Param("pagingQueryDO") PagingQueryDO pagingQueryDO, @Param("state") String state);

    /**
     * 查询用户设备 单日详情数据
     *
     * @param pagingQueryDO
     * @return
     */
    List<Map<String, Object>> queryUserDeviceRecordCountView(@Param("pagingQueryDO") PagingQueryDO pagingQueryDO);

    /**
     * 统计用户设备 单日详情数据
     *
     * @param pagingQueryDO
     * @return
     */
    Integer countUserDeviceRecordCountView(@Param("pagingQueryDO") PagingQueryDO pagingQueryDO);

    /**
     * 查询组织设备 单日详情数据
     *
     * @param pagingQueryDO
     * @return
     */
    List<Map<String, Object>> queryOrgDeviceDayCountView(@Param("pagingQueryDO") PagingQueryDO pagingQueryDO);

    /**
     * 统计组织设备 单日详情数据
     *
     * @param pagingQueryDO
     * @return
     */
    Integer countOrgDeviceRecordCountView(@Param("pagingQueryDO") PagingQueryDO pagingQueryDO);

    /**
     * 查询商户单日设备
     *
     * @param pagingQueryDO
     * @param state
     * @return
     */
    List<Map<String, Object>> queryMerchantDeviceDayCount(@Param("pagingQueryDO") PagingQueryDO pagingQueryDO, @Param("state") String state);

    /**
     * 统计商户单日设备
     *
     * @param pagingQueryDO
     * @param state
     * @return
     */
    Integer countMerchantDeviceDayCount(@Param("pagingQueryDO") PagingQueryDO pagingQueryDO, @Param("state") String state);

    /**
     * 查询商户设备汇总
     *
     * @param pagingQueryDO
     * @param state
     * @return
     */
    List<Map<String, Object>> queryMerchantDeviceDaysRecordCount(@Param("pagingQueryDO") PagingQueryDO pagingQueryDO, @Param("state") String state);

    /**
     * 统计商户设备汇总
     *
     * @param pagingQueryDO
     * @param state
     * @return
     */
    Integer countMerchantDeviceDaysRecordCount(@Param("pagingQueryDO") PagingQueryDO pagingQueryDO, @Param("state") String state);

    /**
     * 查询组织设备 单日详情数据
     *
     * @param pagingQueryDO
     * @return
     */
    List<Map<String, Object>> queryMerchantRecordCountView(@Param("pagingQueryDO") PagingQueryDO pagingQueryDO);

    /**
     * 统计组织设备 单日详情数据
     *
     * @param pagingQueryDO
     * @return
     */
    Integer countMerchantRecordCountView(@Param("pagingQueryDO") PagingQueryDO pagingQueryDO);

    /**
     * 查询商户列表
     *
     * @param pagingQueryDO
     * @return
     */
    List<Map<String, Object>> queryMerchantList(@Param("pagingQueryDO") PagingQueryDO pagingQueryDO);

    /**
     * 统计商户列表
     *
     * @param pagingQueryDO
     * @return
     */
    Integer countMerchantList(@Param("pagingQueryDO") PagingQueryDO pagingQueryDO);
}
